When managing sensitive data of other people, such as identity numbers (e.g., social security numbers, social insurance numbers, health insurance numbers, driver's licenses, passport numbers), credit card numbers, or other highly sensitive information, it is important to safeguard that information. If unscrupulous hackers or system attackers obtain some person's identity information, they may be able to steal that person's identity, purchase items using their credit, steal benefits or tax refunds, or otherwise harm that person.
An organization that loses sensitive information contained in their database to a hacker faces potential substantial liability if the sensitive data is stolen and used improperly.
A typical solution is to use deterministic encryption, where one value encrypted multiple times using a key “K” gives the same output every time. Given deterministic encryption an attacker would need to know the key “K” to recover the underlying value. Some searches can be performed on the encrypted data in the database, but typically only equivalency comparisons such as equal to or not equal to.
Many databases provide encryption along with some key management, for example, SQL Server supports encryption. MySQL also supports encryption via query functions. CryptDB is a database system that encrypts data and supports running queries on encrypted data.
U.S. Pat. No. 7,552,467 to Lindsay (incorporated herein by reference) discloses password-based security systems that can provide different levels of access responsive to entry of a primary or secondary password. In some versions, user-configurable security rules can provide customized responses to entry of primary or secondary passwords, including feigned or limited access.